home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PRINTER / WSD40E.ARJ / WSD-ENG.DOC < prev    next >
Text File  |  1992-06-17  |  55KB  |  1,265 lines

  1. (* ------------------------------------------------------------------
  2.  Helmut Steeb  03.07.91 TURBO-PASCAL 5.5
  3.  S+C-AT 286, Herculesgraphik, 1MB RAM, MS-DOS 3.30
  4.  486/33, VGA-Graphik, 4MB RAM, DR-DOS 6.0
  5.  WSD-ENG.DOC
  6.  From: 17.06.92
  7. ------------------------------------------------------------------ *)
  8.  
  9.  
  10.  
  11. ──────┤ WSD ─ your text formatter by Helmut Steeb ├──────
  12.  
  13. Contents
  14. --------
  15.  
  16. What is WSD?
  17. A short introduction
  18. Description of files
  19. How to install WSD
  20. Formatting texts with WSD
  21.   How to start WSD
  22.   Printing modi
  23.   Escape characters
  24.   Additional escapes in head and foot lines
  25.   Page layout
  26.   Shortcuts for escapes
  27.  
  28. Appendix
  29. A) Printer requirements
  30. B) List of dot commands
  31. C) How to construct your proportional table
  32. D) Bugs, problems, missing features
  33.  
  34. ------------------------------------------------------------------
  35.  
  36. What is WSD?
  37. ------------
  38.  
  39. WSD is "yet another text formatter". Its functionality is styled
  40. similiar to WordStar 3.0. In fact, I made the first version of WSD
  41. because WordStar 3.0 lacked some features which I'd liked to have.
  42. These are especially printing user defined fonts, printing in double
  43. height and with several printing features the printer supported. "WSD"
  44. means "Word Star Druck" (Word Star Printing). But Word Star was not
  45. the last word to WSD. I have worked on WSD continuously. Today, the
  46. most important features of WSD are:
  47.  
  48. - printing ONLY on 24-dot matrix printers (at the moment)
  49.  
  50. - WSD formats your text in proportional spacing, with left and right
  51.   justification. Proportional spacing is the most readable print style
  52.   - characters are of different width, then, e.g., "i" is not as wide
  53.   as "w".
  54.  
  55. - Automatic hyphenation!
  56.  
  57. - Checking your text file in advance before actually printing
  58.  
  59. - Print styles can be mixed:
  60.  
  61.   * Proportional spacing normal/narrow, 10 cpi (characters per inch,
  62.     the usual spacing), 12 cpi, 15 cpi, 17 cpi and 20 cpi (narrower)
  63.  
  64.   * LQ (letter quality) or draft quality
  65.  
  66.   * Printer internal or user defined fonts (for foreign language
  67.     characters, calligraphic fonts, maths...)
  68.  
  69.   * double wide and double high print style, italics, underline, bold,
  70.     superscript, subscipt.
  71.  
  72.     NOTE: double high print style is not correctly taken into account
  73.       for vertical page layout at the present.
  74.  
  75. - page format with one or two columns (to be mixed on the same page)
  76.  
  77. - page style "normal" / only "left" pages / only "right" pages /
  78.   twosided
  79.  
  80. - variable line spacing 8 / 6 / 4 lines per inch (the same as 0.5 / 1
  81.   / 1.5 on some typewriters).
  82.  
  83. - WSD is a mere text formatter. The printing features (italics,
  84.   underlined, etc.) are not visible on screen, only on paper you will
  85.   see them. This is not "what you see is what you get". You write your
  86.   text with your favourite text editor (I am using QEdit, by the way).
  87.   WSD will do the formatting and printing.
  88.  
  89.   To control printing, you add formatting commands to your text. These
  90.   are:
  91.  
  92.   * "escapes", following after the "escape character" "#". For
  93.     example, "#K" means "italics on", and "#k" means "italics off".
  94.  
  95.   * "short cuts" (abbreviations) of escapes. Short cuts for escapes
  96.     are not important at the beginning. More about them can be found
  97.     below (I don't use these very often).
  98.  
  99.   * "dot commands". Their purpose is in general to control printing
  100.     layout. Dot commands are text lines which start with a dot in the
  101.     first text column (in regular text lines, this is assumed to never
  102.     occur). These lines with a dot in the first column are only to
  103.     define layout features. They will NOT be printed. For example, to
  104.     switch to two column printing, you would use the following command
  105.     placed in the first print column:
  106.  
  107.     .2c
  108.  
  109. ------------------------------------------------------------------
  110.  
  111. Short introduction
  112. ------------------
  113.  
  114. I suppose, before reading all the rest of this text, you'd like to get
  115. a quick taste about WSD. My proposal: just give it a try now!
  116.  
  117. To this end, all files of the WSD archive should be together in a
  118. subdirectory. Now change dir to that directory, e.g.,
  119.  
  120. A:
  121. CD WSD
  122.  
  123. and make your printer ready. NOTE: the print head should be
  124. immediately below the top paper border (if you are using a sheet
  125. feeder, we must think a bit over that. May be this can be managed by
  126. adjusting the paper layout, i.e., you should then decrease the top
  127. margin and increase the bottom margin. See below on these notions).
  128. Now start WSD by
  129.  
  130. WSD -c WSDDEMO
  131.  
  132. WSD will check (-c) the file WSDDEMO.TXT and tell you that no error
  133. occured (by adding -c, you can always suppress printing to only check
  134. the input file). Fine! Now becoming serious, type
  135.  
  136. WSD WSDDEMO
  137.  
  138. Afterwards, (hopefully) you see your first WSD formatted text on the
  139. printer. It is a demo, so don't bother that it is in German language.
  140. Just enjoy the printing features. If there are some less beautiful
  141. phenomena, you should seemingly proper install WSD to your printer.
  142. For printers as NEC P6, there should be no problems. If you like it,
  143. go on trying some more texts. Or just more promising, have a try with
  144.  
  145. LISTING WSD-ENG.DOC
  146.  
  147. Be told again: if you add option -c when calling WSD, then the input
  148. file will only be checked, not actually be printed. As a side effect
  149. you will see the number of pages needed.
  150.  
  151. You can also print first all pages with odd page numbers, then turn
  152. the sheet round, then print all pages with even page numbers:
  153.  
  154. LISTING WSD-ENG.DOC /po
  155.   ... turn all round ...
  156. LISTING WSD-ENG.DOC /pe
  157.  
  158. If you like it still smaller, do it with LISTING1 instead.
  159.  
  160. Some remarks are in order here (for details see the following
  161. chapters):
  162.  
  163. - the batch files LISTING.BAT etc. all call the WSD.EXE program. If
  164.   there are problems, make sure that LISTING.BAT etc. contains the
  165.   correct actual path to WSD.EXE.
  166.  
  167. - the files FONTTST1.TXT, FONTTST2.TXT and SAMPLE.TXT all try to print
  168.   user defined fonts. This will only work if your printer is prepared
  169.   to print user defined fonts, and if the file WSD.CFG contains the
  170.   correct path to the fonts (entry FO=xxx; the fonts are all named
  171.   with extension .LET and come in the LETTER subdirectory). You can
  172.   always print these files with LISTING because LISTING suppresses the
  173.   font switching commands.
  174.  
  175. ------------------------------------------------------------------
  176.  
  177. Description of files
  178. --------------------
  179.  
  180. WSD is no "integrated" environment as some commercial available
  181. programs are. The formatting process is controlled by some files which
  182. are read by WSD at program start. You can easily adapt these files
  183. using a simple text editor.
  184.  
  185. WSD      EXE          The program
  186.  
  187. WSD      MSG          message file
  188.   MUST be available at program start. Without this file, WSD would not
  189.   be able to communicate with you. The idea behind this is to allow
  190.   simple adaptation to various languages. Actually, you need not copy
  191.   your adapted file onto WSD.MSG. On startup, WSD first checks the
  192.   value of the environment variable WSDMSG and tries to read that
  193.   file. If this succeeds, WSD.MSG need not be there. For further
  194.   information see below in the chapter on Installing WSD.
  195.  
  196. WSD      CFG          configuration file
  197.  
  198.   MUST be available at program start. You can write a configuration
  199.   file of your own and tell WSD to use that via a command line
  200.   parameter. In the configuration file, some general data for
  201.   formatting are specified. These are tabulator width, for example, as
  202.   well as the names of other files used by WSD (hyphenation info,
  203.   printer information, etc.).
  204.  
  205. NECP6    ESC
  206.   MUST be available at program start. The name of the file to use is
  207.   specified in the configuration file. This file defines the
  208.   connection of text characters following "#" with printer escape
  209.   sequences. For example, the file says that the character sequence
  210.   "#K" in your text will be replaced by the printer codes ESCAPE "4"
  211.   (ESCAPE is a special character for printer control). On most
  212.   printers, ESCAPE "4" will switch to italic printing. Besides that,
  213.   the file contains escape sequences which are sent to the printer as
  214.   initialization strings and the like. Short cuts can be found there,
  215.   too.
  216.  
  217.   This escape file may be changed in order to:
  218.  
  219.   * adapt WSD to special printers which don't use the common escape
  220.     sequences. For example, you could easily tell WSD to replace "#K"
  221.     by ESCAPE "X" instead of ESCAPE "4". This makes sense if your
  222.     printer is switched to italics via ESCAPE "X".
  223.  
  224.   * change the text characters which invoke printing features. If you
  225.     don't like "#K" to turn italics on, change the escape file so that
  226.     "#j" switches to italics (if you think this makes sense).
  227.  
  228.   * define or change short cuts for escapes.
  229.  
  230. GHMIN    HYF
  231.   File with hyphenation info (need not be there). The name of the file
  232.   to use is specified in the configuration file. The hyphenation info
  233.   as well as the hyphenation procedures are due to the TeX text
  234.   formatter. GHMIN.HYF contains the information of GHYPHEN.MIN
  235.   (delivered with EmTeX by Eberhard Mattes) in compressed form.
  236.   GHMIN.HYF works very fine with german words.
  237. HYPHEN   HYF
  238.   The same as GHMIN.HYF, but for English texts.
  239.  
  240. MAKEHYPH EXE
  241.   Utility program to construct hyphenation files from TeX-style
  242.   hyphenation files.
  243.  
  244. NECP6    WID
  245. NECP6PL  WID
  246. LC2410   WID
  247.   These files specify the width of all the characters in proportional
  248.   spacing on the respective printer. There MUST be one such file at
  249.   program start. Which file WSD will use is defined in the
  250.   configuration file. WSD must be told how many dots the various
  251.   characters need on paper. This is especially necessary to left and
  252.   right justify the output lines. Formatting will work nonetheless
  253.   with files that do not contain the exact widths of your printer. The
  254.   result will merely be that the right margin will not be properly
  255.   justified. If your printer is none of the above, refer to the
  256.   appendix (it tells you how to find out the spacing data of your
  257.   printer).
  258.  
  259. PROPTEST.EXE
  260.   Program to find out the proportional spacing data (see appendix).
  261.  
  262. LISTING  FRM
  263.   File with layout data, e.g. two columns or not, right justification
  264.   off, draft quality, condensed. You can use this file to print
  265.   listings or similiar "raw" data. Since each column will contain one
  266.   usual print page, you need only half the paper. To use this file,
  267.   call WSD /fLISTING or just LISTING.BAT (with additional parameters,
  268.   as needed).
  269.  
  270.   Comment: some people like enormously spaced, few information on one
  271.   paper. I like to see much small printed data on one paper because it
  272.   is easier, then, to grasp cross references. For listings, I find it
  273.   very convenient to have two conventional pages on one sheet. Buf if
  274.   you prefer the first mentioned style, forget everything about
  275.   LISTING.FRM.
  276.  
  277. LISTING  BAT
  278.   Batch file. It calls WSD with parameter /fLISTING. To print a Pascal
  279.   file DATEI.PAS using the format data from LISTING.FRM, just issue
  280.  
  281.   LISTING DATEI.PAS
  282.  
  283.   If you call LISTING.BAT from another directory, not where WSD.EXE
  284.   resides, you must probably enter the actual path to WSD.EXE into
  285.   LISTING.BAT (and LISTING1.BAT etc.). See below on installation of
  286.   WSD.
  287.  
  288. ------------------------------------------------------------------
  289.  
  290. How to install WSD
  291. ------------------
  292.  
  293. In case you didn't, to read the previous chapter (description of
  294. files) would probably be helpful before you install WSD.
  295.  
  296. First copy all the files in a new subdirectory (unless already done so
  297. by PKUNZIP). WSD.EXE is the executable program. It is called from
  298. within LISTING.BAT, LISTING1.BAT and LISTINGQ.BAT. If you want to call
  299. LISTING.BAT from another directory, not where WSD.EXE resides, you
  300. must probably enter the actual path to WSD.EXE into LISTING.BAT (and
  301. LISTING1.BAT etc.). If, e.g., WSD.EXE is in the directory D:\TEXT\WSD,
  302. the call in LISTING.BAT should look like
  303.  
  304.   D:\TEXT\WSD\WSD /fListing ...
  305.  
  306. At program start, WSD reads the file specified in the environment
  307. variable WSDMSG, or the file WSD.MSG. Just for now, the file WSD.MSG
  308. will be good. If you like to adapt WSD to German language, for
  309. example, simply issue the command
  310.  
  311.     SET WSDMSG=WSD-GER.MSG
  312.  
  313. before running WSD. In this case, it will do no harm if WSD.MSG is not
  314. present. It is then even possible to run WSD from another directory
  315. (not where WSD.EXE and WSD-GER.MSG are); WSD will automatically search
  316. for the message file in the directory in which WSD.EXE resides.
  317.  
  318. If you aren't able to set the environment variable because the
  319. environment lacks space, you should adapt your computer's system file
  320. CONFIG.SYS also. To this end, increment the value after /E: in a line
  321. like
  322.  
  323.   SHELL=C:\DRDOS\COMMAND.COM C:\DRDOS\ /P /E:512
  324.  
  325. If you are not sure how this works, see the documentation for your DOS
  326. operating system.
  327.  
  328. After reading the message file, WSD reads the configuration file
  329. WSD.CFG (or whatever file you specify on the command line, e.g.
  330. /cMYCONFIG; ".CFG" will be added automatically). Installing WSD, the
  331. main thing is to set up the data in WSD.CFG appropriately. We now
  332. turn, therefore, to an explanation of these data (with examples).
  333.  
  334. wi=necp6.wid
  335.     WI (WIdth) denotes the file with proportional spacing information.
  336.     This line MUST be there in the configuration file. If your printer
  337.     is one of NEC P6, NEC P6+ or Star LC 24 10, just enter the name of
  338.     the respective file (NECP6.WID, NECP6PL.WID, LC2410.WID) after
  339.     "wi=". If there is no file for your printer, you can for the
  340.     moment use one of the other files. Refer to the appendix to see
  341.     how you can build such a file for your printer.
  342.  
  343. es=necp6.esc
  344.     ES (EScapes) denotes the file with escape sequences. This line
  345.     MUST be there in the configuration file. Since most dot matrix
  346.     printers will accept the NEC pinwriter escape sequences, for most
  347.     printers you can just leave the line as "es=necp6.esc". If you
  348.     later find that some printing features (italics, bold etc.) don't
  349.     come to paper as you think they should, then you should do
  350.     something. Produce a copy of NECP6.ESC, give it the name of your
  351.     printer, and refer to your printer's manual whether some data in
  352.     the file should be changed.
  353.  
  354. fo=c:\text\font
  355.     FO (FOnt-directory) denotes the directory, in which WSD looks for
  356.     user defined fonts. If you specify font file names using the dot
  357.     command FT, these names will be preceded by the FO-value. Example:
  358.     in your text, you write .FT=greek. With fo=c:\text\font, WSD will
  359.     look for c:\text\font\greek.let. If you don't specify FO, WSD will
  360.     look for the fonts in the current directory.
  361.  
  362. ff=yes
  363.     FF (Form Feed). If a page is printed, WSD can either use the
  364.     printer's internal form feed (ff=yes), or it can produce the page
  365.     break by sending several line feeds to the printer (the exact
  366.     number depending on the page layout; this is with ff=no).
  367.  
  368. wa=no
  369.     WA (WAit). With wa=yes, WSD will pause at the end of a page and
  370.     wait for a keystroke. Nowadays, wa=yes seems to be no more
  371.     necessary. There have been problems when entire font files were
  372.     downloaded to the printer; these problems didn't occur when WSD
  373.     waited on a keystroke before form feeds and before downloading a
  374.     font file. But possibly, these problems were caused by a bug.
  375.  
  376. ta=8
  377.     TA (TAbulator size) specifies the number of blanks that will be
  378.     inserted internally to replace a tab character (ascii 8).
  379.     Personally, I don't use tab characters, I even don't like them. It
  380.     seems to me that text files containing tab characters are not
  381.     properly treated by WSD but don't be amazed if I didn't fix that
  382.     problem yet. Some editors can be customized to produce no tab
  383.     characters but to replace them with blanks themselves.
  384.  
  385. pm=c
  386.     PM (Page Mode) is the default page mode for WSD. It is in effect
  387.     as long as you don't issue the dot command .PM. The page mode
  388.     says:
  389.  
  390.     - whether for the left paper margin the value of IR (indentation
  391.       left) or IR (indentation right) shall be used
  392.     - whether for the top line of the pages the line specified by dot
  393.       command HL (head left) or HR (head right) shall be used
  394.     - whether top and bottom lines are printed left or right justified
  395.       (lines which are split by "#>" are not affected)
  396.  
  397.     Legal values are (upper or lower case):
  398.  
  399.     - R (Right): use IR and HR always, print top and bottom lines
  400.         right justified (except lines containing "#>")
  401.     - C (Center): use IR and HR always, but center top and bottom
  402.       lines (except lines with "#>")
  403.     - L (Left): use IL and HL always, print top and bottom lines
  404.       left justified (except lines with "#>")
  405.     - 2 (2-sided): for even page numbers the same as L, for odd ones
  406.       as R.
  407.  
  408. hy=hyphen.hyf
  409.     HY (HYphenation table) denotes the hyphenation table file.
  410.     Hyphenation tables can be produced via the utility program
  411.     MAKEHYPH.EXE from original TeX hyphenation tables. The file
  412.     GHMIN.HYF has been built from GHYPHEN.MIN and contains exactly the
  413.     information of the latter in compressed form. For printing English
  414.     texts, the table HYPHEN.HYF (produced from HYPHEN.TEX) should be
  415.     suitable. If there is no HY-definition, WSD will not do any
  416.     automatic hyphenation.
  417.  
  418. in=
  419.     IN (INclude-file) denotes a file that will be read before your
  420.     actual input text is read. It makes sense to specify a file
  421.     containing formatting data (e.g., dot commands). The extension
  422.     .FRM will be supplied automatically. If you use parameter /f on
  423.     the command line, the line in the configuration file will have no
  424.     effect.
  425.  
  426. ig=no
  427.     IG (IGnore dot commands in verbatim-mode). In verbatim mode, all
  428.     text escape characters (#x) and all short cuts ($x) are printed
  429.     without interpretation. Only with dot commands, you can choose:
  430.  
  431.     * with ig=no the dot commands will be interpreted, as done in the
  432.       other printing modi. They will not appear on the paper
  433.       themselves.
  434.     * with ig=yes, all dot commands are printed as text. The only
  435.       exception is .)) which must be interpreted since it turns
  436.       verbatim mode off.
  437.  
  438.     If you want to print "raw texts", listings for example, there may
  439.     a large amount of "#" and "$" characters in them. Verbatim mode is
  440.     very helpful in these cases since in verbatim mode, the characters
  441.     are not interpreted but simply printed. In formatting mode, the
  442.     characters can only be printed by doubling them: to print "#", you
  443.     write "##" in your text, as well as "$$" for printing "$". In
  444.     general, you will use ig=no in verbatim mode since then you can
  445.     control even printing of raw texts via dot commands. ig=yes will
  446.     only be necessary if you want to print a text that has dot
  447.     commands in it, and you want to print these on paper.
  448.  
  449.  
  450. Well, this is a description of the configuration file. As far as I can
  451. tell, everything is now said about installing WSD.
  452.  
  453. Further note concerning file names:
  454.  
  455. The files which are specified in the configuration file must be under
  456. the there mentioned name either in the WSD directory (where WSD.EXE
  457. resides), or in the current directory. The search for the files
  458. proceeds in this order. In this case, NO file name extensions are
  459. automatically supplied. This is different as for your command line
  460. parameters.
  461.  
  462. Format file, configuration file and input text file will also be
  463. searched for in the WSD and then in the current directory. If not
  464. found, and if the file name did not contain an extension, a default
  465. extension will be supplied for the respective file type, and the
  466. search is done again in the mentioned order. If it is not found again,
  467. you will get an error indication, and WSD stops.
  468.  
  469. ------------------------------------------------------------------
  470.  
  471. Formatting texts with WSD
  472. -------------------------
  473.  
  474.     How to start WSD
  475.     ----------------
  476.  
  477. Simply invoke WSD with
  478.  
  479.   WSD
  480.  
  481. or
  482.  
  483.   WSD /?
  484.  
  485. to get a help screen dealing with options and parameters. These data
  486. are now explained in detail.
  487.  
  488. What you MUST specify to work with WSD:
  489.  
  490.   1) the name of your text file. All DOS pathnames are allowed. Not
  491.     allowed are wildcards like * or ?, as well as character oriented
  492.     devices like CON (you want to try "WSD CON"? Don't do it!). Things
  493.     like DIR | LISTING are not possible. If your text has the
  494.     extension TXT, you need not type these characters since WSD will
  495.     supply them automatically. Example:
  496.  
  497.     WSD file.txt
  498.  
  499.     produces the same as
  500.  
  501.     WSD file
  502.  
  503. What you CAN specify to work with WSD:
  504.  
  505.   2) the name of the output file. All DOS pathnames are allowed here,
  506.     too, as well as character oriented devices (e.g., PRN). The output
  507.     file name must be specified AFTER the input file. In fact, this is
  508.     the only restriction about the ordering of command line
  509.     parameters. Example:
  510.  
  511.     WSD file.in file.out
  512.  
  513.     If you don't specify the name of an output file, WSD will
  514.     gracefully assume PRN for you. If you specify one, output
  515.     including printer escape sequences will be directed to that file,
  516.     so later on you can print it via
  517.  
  518.     COPY file.out PRN
  519.  
  520.   3) Several options. Options work as toggles: they toggle features of
  521.     WSD on or off. Options are denoted by single characters, upper or
  522.     lower case doesn't matter. On the command line, options must be
  523.     preceded by "-". You can sum up several options after one "-". As
  524.     already mentioned, options can be located at any position in the
  525.     command line. Examples (both have the same effect):
  526.  
  527.     WSD -c file.in -d
  528.     WSD -cd file.in
  529.  
  530.     The default values of the available options are displayed on the
  531.     helpscreen by invoking WSD /?.
  532.  
  533.     - Option -C (Check Syntax): WSD then analyses your text without
  534.       producing output. If there are any problems during the analysis,
  535.       WSD will report afterwards how many problems occured. All
  536.       problems are protocolled into a file named WSD.LOG. NOTE that
  537.       this protocolling occurs in any case, even if you did not
  538.       specify -C.
  539.  
  540.       Examples: Assume the text escape character "z" is undefined in
  541.       your escape file. WSD will then report the occurence of #z in
  542.       your text file. In verbatim mode, WSD reports lines which are
  543.       too long for the current line length (it will automatically wrap
  544.       these lines at word boundaries, if possible. Otherwise, they
  545.       will be suppressed).
  546.  
  547.       ERGO: it is VERY HELPFUL to check your text first with option
  548.       -c. If WSD reports problems, refer to WSD.LOG, change your text,
  549.       if necessary, and only then go on printing. Option -c can save
  550.       you a lot of paper...
  551.  
  552.     - Option -L (Load Font): only for use of user defined fonts.
  553.       Probably only for NEC P6.
  554.  
  555.       Usually, WSD loads the character definitions of a user defined
  556.       font into main memory. Only if a certain user defined character
  557.       must actually be printed, the pixel data will be loaded into the
  558.       printer. This allows to intermingle printing of several fonts
  559.       without at each occurence of another font downloading that font
  560.       entirely. But (at least on our NEC P6) there may be a problem if
  561.       the double high or underlined printing features where active
  562.       before loading the pixel data: there will be a small but
  563.       noticeable forward paper motion. If you want to print an
  564.       underlined headline, it will be printed nicely "downstairs".
  565.       This effect doesn't occur if the pixel data for the characters
  566.       are already in the printer's download memory. So the trick is to
  567.       ensure that the font is already downloaded as a whole. I did it
  568.       as follows: before headlines that I wanted to print in a user
  569.       defined font, I put the FT font dot command. Also, on the
  570.       command line, I set the option L. Option L then causes the font
  571.       to be loaded to the printer immediately when FT occurs. May be,
  572.       this is specific to the NEC P6, so forget all about it.
  573.  
  574.     - Option -P (Preview):
  575.       ** not yet implemented **
  576.  
  577.     - Option -D (Dump): not recommended. Internal data which are build
  578.       during the analysis of your file are output to the file named
  579.       WSD.TST. This option is helpful for programmers and bug fixers
  580.       of WSD. The output file can become rather large! Only the pages
  581.       which are selected by parameter /p will be dumped.
  582.  
  583.   4) Various parameters. Parameters follow the character "/". They
  584.     also can be placed at any position in the command line.
  585.  
  586.     - Parameter /P (Pages): decides, on which (output) pages WSD shall
  587.       work. In any case, WSD starts analyzing your text from the
  588.       beginning of the file, even if the first page(s) are not to be
  589.       printed (how should WSD recognize where the second output page
  590.       begins if it did not process the first?). WSD stops when the
  591.       last specified page has been processed. If you don't specify
  592.       parameter /p, all pages will be processed ("all" means: up to
  593.       page 255. You know, the "byte" and stuff).
  594.  
  595.       Immediately following the "/p", you can write several ranges of
  596.       text pages, these are delimited by periods. The following ranges
  597.       are possible:
  598.  
  599.       Example       Effect
  600.       --------------------------------------------------------
  601.       10            single page
  602.       -10           all pages up to page 10 (inclusively)
  603.       10-           all pages, beginning from page 10 (inclusively)
  604.       5-7           pages 5 thru 7
  605.       e (also E)    all even pages, i.e. 2, 4, 6...
  606.       o (also O)    all odd pages, i.e. 1, 3, 5...
  607.  
  608.       Examples of complete page specifications:
  609.  
  610.       /pe           all even pages
  611.       /pe.1-3       pages 1, 3 and all even pages
  612.       /p10          page 10
  613.       /p10 /p2-3    pages 2, 3 and 10
  614.  
  615.       As you may have noticed, the several ranges are implicitly
  616.       combined by OR (union), not by AND (intersection). Thus, /pe.1-3
  617.       denotes NOT just "page 2 only" but moreover "all even pages +
  618.       pages 1-3", i.e., pages 1, 2, 3, 4, 6, 8 etc. When processing
  619.       your file, WSD will show selected page numbers in brackets like
  620.       [1], suppressed pages will be displayed surrounded by dots like
  621.       .2. In detail, the opening bracket will be displayed before the
  622.       analysis of the page starts. The page number will be displayed
  623.       after the page has been analyzed, the closing bracket after the
  624.       page has been output. Example:
  625.  
  626.       [3] .4. .5. [6]
  627.  
  628.       If you press any key while WSD is working on your text, you will
  629.       enter a dialougue with WSD after the current page has been
  630.       processed (on that point, refer also to the chapter on
  631.       installation, feature DI). In this dialogue, you can redo the
  632.       page selection, starting at least from the next page (you can't
  633.       work on previously finished pages again).
  634.  
  635.       Note: if you decide to exit printing immediately, then WSD will
  636.         nonetheless try to return your printer into a well defined
  637.         state (which includes your exit string, see file with escape
  638.         sequences). If you simply turn your printer off, and then type
  639.         "x" to exit from printing, WSD will try to send the exit data
  640.         to your printer. Because this is no more possible, it will
  641.         then abort with a rather mysterious "runtime error 160" (which
  642.         means exactly "device write fault"). So either don't turn off
  643.         your printer too soon, or else just ignore the error message.
  644.  
  645.     - Parameter /F (Format): this parameter must denote a file. The
  646.       file will be analyzed as include file before your text is worked
  647.       on. Therefore, it will be convenient to save commonly used
  648.       layout values (dot commands) as a file and supply them on the
  649.       command line via /f. The extension FRM will automatically be
  650.       added. Example:
  651.  
  652.       WSD /flisting wsd.pas
  653.  
  654.       Note, that /f suppresses the configuration file datum IN. If
  655.       your configuration file says IN=DINA4.FRM (extension there
  656.       necessary!), and you invoke WSD with parameter /fLISTING, only
  657.       LISTING (or LISTING.FRM) but not DINA4.FRM will be processed.
  658.  
  659.     - Parameter /C (Config): in place of WSD.CFG the specified
  660.       configuration file will be used. Extension CFG will be supplied
  661.       automatically (probably /C is not necessary).
  662.  
  663. ------------------------------------------------------------------
  664.  
  665.     Printing modi
  666.     -------------
  667.  
  668. WSD prints texts in three different modi:
  669.  
  670. - F+ (formatting): WSD formats your text automatically left and right
  671.     justified. It doesn't matter where the input lines end. WSD reads
  672.     word after word and fills the output lines as good as possible
  673.     with microspaces to get the justification (note that WordStar 3.0
  674.     did not work with proportional spacing fonts and, as I remember,
  675.     filled lines with blanks only which is rather crude).
  676.  
  677.     Note that there is a great difference between the job of a typist
  678.     and the job of WSD! A typist (and most likely WordStar 3.0) types
  679.     fixed width characters and fills in an appropriate number of
  680.     blanks between the words to get right justification. You easily
  681.     recognize such output because all the characters are positioned
  682.     column for column in the same manner.
  683.  
  684.     WSD does more: it uses proportional fonts. If you have a look at
  685.     the next book at hand, you will find that in professional printing
  686.     characters are of different widths: "w" takes more horizontal
  687.     space than "i", for example. This makes texts more readable. To
  688.     print such texts right justified, WSD must be told what widths all
  689.     the individual characters have. Given these widths, WSD computes
  690.     the width of a complete line and appropriately fills in pixel
  691.     space (not blanks) in order to right justify the line.
  692.  
  693.     To end a paragraph, you place an empty line into your file (such
  694.     as the one before "To end..."). At this point, WSD will stop
  695.     continuous formatting and place an empty line into the output,
  696.     too. To get a line break within a paragraph, insert the text
  697.     escape "#." (hash, followed by a dot). But, admittedly, I didn't
  698.     use this feature extensively, neither did I test it.
  699.  
  700.     In the output, the lines will be indented as you indented them in
  701.     the input file. Since source and output lines can be of different
  702.     length, there are somewhat subtle problems with this statement. To
  703.     be exact, note the following: "For every output line WSD uses the
  704.     indentation of that input line, in which the output line was
  705.     begun" (i.e., in which the first word of the output line was
  706.     found). If you, for example, write paragraphs of the form
  707.  
  708.     Keyword: 1111 2222 333 444 555 65666 7777 8888 9999 2020
  709.        aaa bbb ccc and so on...
  710.  
  711.     and format these lines rather narrow, then you will get something
  712.     like
  713.  
  714.     Keyword: 1111 2222 333 444 555 65666
  715.     7777 8888 9999 2020 aaa bbb ccc  and
  716.        so on...
  717.  
  718.     The point here is that the second output line, beginning with
  719.     7777, was begun while the first input line was still active
  720.     (because 7777 comes from the first input line). Therefore, the
  721.     indentation of the second output line is taken from the first
  722.     input line. Since you surely want the lines to look like
  723.  
  724.     Keyword: 1111 2222 333 444 555 65666
  725.        7777  8888 9999  2020 aaa bbb ccc
  726.        and so on...
  727.  
  728.     you should in such cases simply shorten the first input line like
  729.  
  730.     Keyword: 1111 2222 333
  731.        444 555 65666 7777 8888 9999 2020 aaa bbb ccc and so on...
  732.  
  733.     In this case, when the 7777 is processed, it will infer the proper
  734.     indentation of the second input line to the respective output
  735.     line.
  736.  
  737.     Alternatively, WSD does the indentation similiar to English
  738.     documents: the first line of every paragraph is indented, all the
  739.     rest of the lines will be left justified. You get this if you
  740.     specify parameter /i on the command line, after the /i telling how
  741.     many characters the first line shall be indented. Note that /i0
  742.     will have the same effect as leaving /i at all: paragraphs will be
  743.     formatted according to the input file indentation.
  744.  
  745.     Example: WSD mytext /i4
  746.  
  747. - F- (Non-formatting mode): your text will be output line after line,
  748.     just as you wrote it. Text escape characters are interpreted into
  749.     the respective printing features. When an output line becomes too
  750.     long (with respect to the line length specified by dot command
  751.     LL), then the rest of the line beginning from the out dropping
  752.     word will be placed into the next output line. The misery will be
  753.     protocolled into the log file. Example:
  754.  
  755.         When an output line becomes too long (with respect to the length
  756.  
  757.     will (according to LL) be formatted to
  758.     
  759.         When an output line becomes too long (with respect to
  760.         the length
  761.  
  762.     Besides this step all output lines will exactly correspond to the
  763.     input lines. Dot commands won't be printed but interpreted.
  764.  
  765.     When printing listings, it may happen that many lines are too long
  766.     and will be wrapped. The output will then be badly readable. For
  767.     this reason, WSD allows you alternatively to shorten these output
  768.     lines and simply suppress the out dropping parts. I use this
  769.     feature when printing Pascal programms: the suppressed parts are
  770.     almost always the final words of comments which I consider to be
  771.     neglectable, then. Note that only whole words are suppressed. This
  772.     means that the word that does not fit on the line entirely will be
  773.     suppressed as a whole.
  774.  
  775.     Suppressing is only in effect in mode F-. It will be enabled by
  776.     option -s, for example: WSD mytext -s.
  777.  
  778. - (( (verbatim, direct mode): your text will be output line for line,
  779.     exactly as you can see it on the screen. Text escape characters
  780.     are NOT interpreted but printed as characters. Dot commands are
  781.     either interpreted (as in the other printing modi), when ig=no is
  782.     specified in the configuration file, or they will be printed as
  783.     well, with ig=yes (see chapter on installation).
  784.  
  785.     Lines which are too long are automatically wrapped or shortened as
  786.     in F- mode. Verbatim mode can be very helpful to print tables or
  787.     texts containing a lot of special characters, since the characters
  788.     # and $ are not interpreted but simply printed. The dot command EV
  789.     (escape verbatim) allows you to specify an escape sequence which
  790.     will be inserted automatically when WSD meets the verbatim
  791.     enabling dot command ((. For example, with EV=#p#q, in verbatim
  792.     mode there will proportional spacing and LQ be automatically
  793.     turned off, i.e. draft is turned on. The dot command )) then
  794.     restores the printing state which was active before entering
  795.     verbatim mode.
  796.  
  797. ------------------------------------------------------------------
  798.  
  799.     Escape characters
  800.     -----------------
  801. To achieve special printing features, simply insert the escape
  802. character # into your text, followed by one of the characters
  803. introduced below (e.g., this is #Sunderlined#s and that is #Dbold#d):
  804.  
  805. s underline off
  806. S underline on
  807.  
  808. d double strike off
  809. D double strike on
  810.  
  811. c condensed off
  812. C condensed on
  813.  
  814. q LQ off (= draft on)
  815. Q LQ on
  816.  
  817. v double high off (= normal height)
  818. V double high on
  819.  
  820. k italics off
  821. K italics on
  822.  
  823. b double wide off
  824. B double wide on
  825.  
  826. p proporitional spacing off (= LQ/draft on, according to q/Q)
  827. P proporitional spacing on
  828.  
  829. t superscript/subscript off
  830. T superscript on
  831. U subscript on
  832.  
  833. N 10 cpi (additionally condensed results in 17 cpi)
  834. E 12 cpi (additionally condensed results in 20 cpi)
  835. e 15 cpi (additionally condensed results in 20 cpi, too)
  836.  
  837. I Internal printer font
  838. X user defined font 1
  839. Y user defined font 2
  840. Z user defined font 3
  841.  
  842. The sequence "#." in the input text in mode F+ (formatting mode)
  843. produces an immediate line break at this position. In other modi, it
  844. is ignored. Note that this feature is not extensively tested, there
  845. may occur faults.
  846.  
  847. To print character "#", write "##". All other characters are NOT
  848. ALLOWED after "#" and are reported as errors. Therefore, if you want
  849. to print a text you didn't write yourself, be sure to double all
  850. occurences of "#" to get to desired result, e.g., "phone ##43". This
  851. is not necessary for verbatim mode since there no escape characters
  852. are interpreted.
  853.  
  854. ------------------------------------------------------------------
  855.  
  856.     Additional escapes in head and foot lines
  857.     -----------------------------------------
  858.  
  859. In head and foot lines (or should we call them top and bottom lines?)
  860. all the above escape sequences are allowed, except "#." and double
  861. heigth on/off. Furthermore, the following "short cuts" are possible
  862. (note that upper/lower case is of importance here):
  863.  
  864. $P  print the current page number at this position
  865.  
  866. $|  split the line at this position. The left part will be printed
  867.     left justified, the right part will be printed right justified.
  868.     When it occurs more than once in a top or bottom line, only the
  869.     last occurence will be taken into account. As a side effect, the
  870.     current page mode (PM) has no effect on the line since it is
  871.     split.
  872.  
  873. $D  insert date, format: 07-05-1991 ( = 5th july 1991). The actual
  874.     date format used depends on the specification in the message file
  875.     (i.e., the file specified via SET WSDMSG=xxx, or else the file
  876.     WSD.MSG).
  877.  
  878. $T  insert time, format: 09:27pm. The actual time format used also
  879.     depends on the respective specification in the message file.
  880.  
  881. $n  insert name of text file - i.e., the name you specified on command
  882.     line, supplied with .TXT if necessary. $n only prints the name and
  883.     extension part.
  884.  
  885. $N  like $n, but the entire path of the file will be printed.
  886.  
  887. Examples:
  888.  
  889.   .he $n ($D $T)$|Page $P
  890.  
  891. results in
  892.  
  893.   INFILE.TXT (07-05-1991 09:29pm)                          Page 1
  894.   INFILE.TXT (07-05-1991 09:29pm)                          Page 2
  895.  
  896. etc.,
  897.  
  898.   .hl $P$|$n
  899.   .hr $D $T$|$P
  900.  
  901. results on left pages (odd page numbers) in
  902.  
  903.   1                                                   INFILE.TXT
  904.  
  905. and on right pages (even page numbers) in
  906.  
  907.   07-05-1991 09:31pm                                           2
  908.  
  909.  
  910. ------------------------------------------------------------------
  911.  
  912.     Page layout:
  913.     ------------
  914.  
  915. The following values are only examples for possible dot command data.
  916.  
  917. ---------------------------------------------- top of paper
  918.  1    (printing head start pos.)  )                              )
  919.  2    head line .HE               )                              )
  920.  3   )                            )  .MT = 4 ("margin top")      )
  921.  4   ) .HM = 2 ("head margin")    )                              )
  922.  5  Beginning of text!  ...    In the beginning was the word,    )
  923.  6  and the word was with God, and the Word was God. He was      )
  924.  7  with God in the beginning. Through him all things were       )
  925.  8  made; without him nothing was made that has been made. In    )
  926.  9  him was life, and that life was the light of men. The light  )
  927. 10  shines in the darkness, but the darkness has not understood  )
  928. 11  it.                                                          )
  929.        ...                                                       )
  930. 56 The true light that gives light to every man was coming into  )
  931. 57 the world. He was in the world, and though the world was      )
  932. 58 made through him, the world did not recognize him. He came    )
  933. 59 to that which was his own, but his own did not receive him.   )
  934. 60 Yet to all who received him, to those who believed in his     )
  935. 61 name, he gave the right to become children of God - children  )
  936. 62 born not of natural descent, nor of human decision or a       )
  937. 63 husband's will, but born of God.                              )
  938. 64  (Gospel of John, chapter 1).       End of page text.         )
  939. 65   )                            )                              )
  940. 66   ) .FM = 2 ("food margin")    )                              )
  941. 67   foot line .FO                )                              )
  942. 68                                )  .MB = 6 ("margin bottom")   ).PL=70
  943. 69                                )                              )
  944. 70                                )                              )
  945. ---------------------------------------------- bottom of paper
  946.  
  947.  
  948. ------------------------------------------------------------------
  949.  
  950.     Short cuts for escapes
  951.     ----------------------
  952.  
  953. To allow an abstraction level over text escapes, there are short cuts
  954. for escapes. Suppose, you want to print all head lines in a document
  955. bold and underlined:
  956.  
  957.   #D#SMy headline#d#s
  958.  
  959. There are some other text elements, say, proper names, which you mark
  960. by printing them in italics. Later, you are no more happy about this
  961. choice of printing features. You'd like to print the headline double
  962. wide instead, and the proper names bold. What to do?
  963.  
  964. One idea is to define short cuts for escapes. In your escape file, you
  965. define that $H shall mean #D#S, and $h shall mean #d#s. Then you write
  966. only
  967.  
  968.   $HMy headline$h
  969.  
  970. and the like. This gives also raise to mnemonic references instead of
  971. longer lists of escapes. And to change the style of the headlines, you
  972. simply change the short cut definition, for example, to mean $H #B
  973. instead of #D#S. May be, you do use this feature even less than I do,
  974. but nevertheless: here it is.
  975.  
  976. To print "$" in your text, you must protect it by doubling it: "$$".
  977. "$25.00" is to be written as "$$25.00". In verbatim mode, invoked by
  978. ((, the character "$" will be printed without interpretation.
  979.  
  980. ------------------------------------------------------------------
  981.  
  982.  
  983. Appendix A) Printer requirements
  984. --------------------------------
  985.  
  986. To print user defined characters, you must print on a 24 dot matrix
  987. printer. If you don't print user defined characters, WSD can probably
  988. also work as desired on 9 dot matrix printers. Versions for deskjets
  989. and laserjets are possible but not yet available. The following will
  990. be of interest to you if there are problems between WSD and your
  991. printer.
  992.  
  993. In any case, the printer must meet the following requirements (refer
  994. to your printer manual; the mentioned codes are fix programmed in
  995. WSD):
  996.  
  997. 1) it must be able to do a relative horizontal pixel motion, and that
  998.   must be invoked by the escape sequence ESC "\", followed by two
  999.   bytes. In proportional spacing and LQ, the unit will be 1/180 pixel,
  1000.   in draft 1/120 pixel. (Comment: draft has another unit, as you see.
  1001.   This is not fine for WSD. Since there are problems, in mode F+ WSD
  1002.   actually switches to LQ mode to do the relative motion and then
  1003.   switches back).
  1004.  
  1005. 2) it must be able to do a relative vertical pixel motion, and that
  1006.   must be invoked by the escape sequence ESC "3", followed by a byte.
  1007.   The unit is 1/180 pixel.
  1008.  
  1009. 3) The form feed is invoked by ascii 12. If your printer doesn't meet
  1010.   that requirement (ever seen such a printer?), you can specify FF=no
  1011.   in the configuration file, also.
  1012.  
  1013. If you want to work with user defined characters:
  1014.  
  1015. 4) you MUST print on a 24 dot matrix printer. The pixel data are
  1016.   fundamentally different on 9 dot matrix printers.
  1017.  
  1018. 5) Loading of user defined data is initiated by ESC "&" 0.
  1019.  
  1020. 6) Take into account that probably you must setup your printer
  1021.   differently in order to allow working with user defined characters.
  1022.   For example, the printer NEC P6+ uses the needed printer memory area
  1023.   in the usual setting just as printer buffer.
  1024.  
  1025. 7) WSD assumes a certain format of pixel data for user defined
  1026.   characters. Accordingly, it sends the data to the printer. The
  1027.   format is taken from the NEC P6 manual, but it seems to be the same
  1028.   on a wide range of 24 dot matrix printers. The pixel data are
  1029.   grouped into 3 byte groups, where each group defines the appearance
  1030.   of one pixel column of the character.
  1031.  
  1032. ------------------------------------------------------------------
  1033.   
  1034.  
  1035. Appendix B) List of dot commands
  1036. --------------------------------
  1037.  
  1038. NOTE: the first character immediately past the two dot command
  1039. characters is ALWAYS ignored. So write .MT 4 and not .MT4 !
  1040.  
  1041.   .. some line
  1042.        Comment line, will not be printed.
  1043.  
  1044.   F+     Formatting mode on.
  1045.   F-     Formatting mode off. The current output line will be output
  1046.            immediately.
  1047.   ((     Verbatim mode on. All characters are immediately printed. With
  1048.          ig=yes (in configuration file), even dot commands except )) are
  1049.          verbatim printed. With ig=no, dot commands are interpreted. The
  1050.          printer will receive the escapes sequences which are defined via
  1051.          EV ("Escapes for Verbatim mode").
  1052.   ))     Verbatim mode off. Restores the printer mode which was active
  1053.          before )), e.g., F+, as well as the respective printer state,
  1054.          e.g., proportional spacing in italics.
  1055.   EV sequence
  1056.         Defines printer state which is automatically entered when
  1057.         verbatim mode begins. Default is: empty sequence (but see
  1058.         LISTING*.FRM). Maximal length is 10 characters. Example: EV #p#q
  1059.  
  1060.   1C     One column printing on.
  1061.   2C     Two column printing on.
  1062.          IMPORTANT: in two column mode the dot commands LH and LL are not
  1063.          allowed. They should therefore always be issued BEFORE 2C.
  1064.  
  1065.   CO     Start new colomn (in two column mode, new page in one column
  1066.   mode)
  1067.  
  1068.   PA     Start new page
  1069.  
  1070.   PN n   Use new page number (starting from current page)
  1071.  
  1072.   OP     Suppress page number which is as default printed in bottom
  1073.          line. If you specify HE, HL, HR or FO, these also suppress
  1074.          the default.
  1075.  
  1076.   HL line
  1077.          head (top) line for left pages
  1078.   HR line
  1079.          head (top) line for right pages
  1080.   HE line
  1081.          head (top) line, defines both HL and HR
  1082.   FO line
  1083.          foot (bottom) line
  1084.   EH sequence
  1085.          Text escape character sequence, defining appearance of top
  1086.          lines. In fact, this sequence is simply put in front of all
  1087.          lines which you specify via HE, HL or HR. Example:
  1088.  
  1089.          .EH #T
  1090.          .HL Top line for left pages
  1091.  
  1092.          results internally in
  1093.  
  1094.          .HL #TTop line for left pages
  1095.  
  1096.          which means that all your top lines will be printed in
  1097.          superscript. Note that you need not be concerned to switch this
  1098.          superscript off again because WSD automatically restores the
  1099.          previous printer state when the top line is finished.
  1100.  
  1101.   EF sequence
  1102.          Text escape character sequence, defining appearance of bottom
  1103.          lines. This works analogous to EH.
  1104.  
  1105.   IL n   Left margin for left pages (unit see below).
  1106.   IR n   Left margin for right pages (unit see below).
  1107.  
  1108.   FT n Name [Q]
  1109.          Load font into main memory, Q: LQ-Mode, otherwise in
  1110.          proportional spacing. N may be 1, 2 or 3. "FT 1 name" defines
  1111.          the font to be used in connection with #X, "FT 2 name" for
  1112.          #Y, "FT 3 name" for #Z. Note that Name must not contain a
  1113.          path; .LET will be supplied if you didn't. NOTE: in two
  1114.          column mode, you must not load different fonts on the same
  1115.          font number - while in the left column font kk is needed for
  1116.          #X, due to the right column there would font mm be needed for
  1117.          #X which is a very bad situation for WSD.
  1118.   DL n   Download a font (which has already been loaded to main memory
  1119.          via FT) into the printer memory. This can be issued as often
  1120.          as you like.
  1121.  
  1122.   IN Name
  1123.          Include file Name. The include file must itself not contain
  1124.          the dot command IN, and it should be terminated with a line
  1125.          feed.
  1126.  
  1127.   LH n   Set line spacing. Default is 2 which corresponds to "1" on
  1128.          some type writers, 1 corresponds to 1/2 (half), 3 to 1 1/2
  1129.          (one and a half). This command does not affect the current
  1130.          layout data MT, MB and PL - these denote the paper layout
  1131.          with respect to the default spacing LH 2. LH 2 is the usual
  1132.          line spacing; it results in 6 lines per inch. LH 1 results in
  1133.          a closer spacing (8 lines per inch), and LH 3 in a wider
  1134.          spacing (4 lines per inch).
  1135.  
  1136.   LL n   Set line length for formatting. In modi F- and ((, too long
  1137.          lines are protocolled into the log file. IMPORTANT: in two
  1138.          column mode, the length of one line within a column is
  1139.          computed by subtracting the column separation CS from LL and
  1140.          dividing the result by 2.
  1141.  
  1142.   CS n   Set column separation for two column printing.
  1143.  
  1144.   PL n   Page length (unit see below)
  1145.   MT n   top margin  (unit see below)
  1146.   MB n   bottom margin  (unit see below)
  1147.   HM n   distance of top line from text area
  1148.   FM n   distance of bottom line from text area
  1149.  
  1150.   The layout dot commands MT, MB and PL are based on the default line
  1151.   height of 6 lines per inch. Therefore, for the text of a page, PL -
  1152.   MT - MB lines are effectively used.
  1153.  
  1154.   When the default line height LH 2 is set, on any paper will PL - MT
  1155.   - MB be printed. By changing the line height, you will get more or
  1156.   less lines on the paper.
  1157.  
  1158.   All dot commands concerning width (IL, IR, LL, CS) are based on the
  1159.   width of a "normal" character, i.e. 36 pixels. This is the pixel
  1160.   width of a character in the default pitch LQ 10 cpi.
  1161.  
  1162. ------------------------------------------------------------------
  1163.  
  1164. Appendix C: How to construct your proportional table
  1165. ----------------------------------------------------
  1166.  
  1167. Start the program PROPTEST.EXE after you made your printer ready. The
  1168. program writes (rather noisy) some pages in proportional spacing. In
  1169. every line, you find a certain character printed twenty times side by
  1170. side. With this pages, you can find out the proportional width of your
  1171. printer's font.
  1172.  
  1173. 1) For every printed line, do the following:
  1174.  
  1175.   Measure how wide the twenty characters are altogether. A typical
  1176.   value for character "A" might be 5.6 centimeters. The width of one
  1177.   character (in cm) is then the twentieth part of your measured value.
  1178.   To get the pixel width of the character, divide the value by 2.5
  1179.   (since one inch has 2.5 cm - this division is of course not
  1180.   necessary if you did measure in inches already but this is not my
  1181.   affair), then multiply the result with 360 (for one inch has 360
  1182.   pixels). The formula is in short
  1183.  
  1184.   y = (((x / 20) / 2.5) * 360 = x * 7.2
  1185.  
  1186.   or:
  1187.  
  1188.   multiply your measured (cm) value with 7.2. Round the result to the
  1189.   next integer number. For "A" as above, you get 5.6 * 7.2 = 40.32 or
  1190.   rounded exactly 40. This means, "A" has width of 40 pixels in that
  1191.   font.
  1192.  
  1193. 3) Write the measured values into a file. Separate the numbers by
  1194.   blanks. Blank lines are not allowed with one exception: the first
  1195.   half of the data is for normal proportional spacing, the second half
  1196.   is for superscripted or subscripted proportional spacing (that
  1197.   means, you do all the measurement twice...). Between these two
  1198.   parts, there may be a blank line. To make a long story short -
  1199.   simply have a look at NECP6.WID.
  1200.  
  1201. 4) Enter the name of your new file into the configuration file. And
  1202.   don't throw away the listing on which you measured the characters -
  1203.   may be you must check and improve some values. In case you got
  1204.   measurement or computing mistakes, the proportional spacing on the
  1205.   herewith printed documents will not be exactly right justified.
  1206.  
  1207. 5) Please send me a copy of the listing or a disk with the width
  1208.   values. Other people may thank you.
  1209.  
  1210. If you are happy to have a proportional spacing table in your printers
  1211. manual, don't be happy too early: the same happened to me, but I found
  1212. that the widths in the manual are not correct. Give them a try, and if
  1213. the printing results are not correctly right justified, see above...
  1214.  
  1215. ------------------------------------------------------------------
  1216.  
  1217. Appendix D: Bugs, problems, missing features
  1218. --------------------------------------------
  1219.  
  1220. (this list could grow in the future...)
  1221.  
  1222. - Double high printing isn't correctly taken into account for the page
  1223.   break.
  1224.  
  1225. - when using user defined characters, there may be problems with non
  1226.   German texts concerning the brackets [] and braces {}. WSD uses the
  1227.   special ascii codes following after "Z" and "z" to represent the
  1228.   German special Umlaut characters (the NEC P6 accepts user defined
  1229.   characters only in the range below ascii 128). Unfortunately, in
  1230.   English texts these ascii codes are used for brackets, braces and
  1231.   other special symbols. There are two remedies against that:
  1232.  
  1233.   * avoid using these symbols when a user defined font is active. For
  1234.     example, don't "#X citation [Smith] p. 120#I", but rather "#X
  1235.     citation #I[#XSmith#I]#X p. 120#I".
  1236.  
  1237.   * edit the fonts and replace the respective German Umlaut characters
  1238.     by the respective English special symbols
  1239.  
  1240. - Cut sheet feeders actually aren't taken into account at the present.
  1241.  
  1242. - The use of the sequence #. is not encouraged because I implemented
  1243.   and tested that only half hearted.
  1244.  
  1245. - There is no preview now, the best you get is with option -c (check
  1246.   syntax).
  1247.  
  1248. - If you turn the printer off before WSD sent the printer exit string
  1249.   (as defined in the respective .ESC file), WSD will gracefully halt
  1250.   and report an error 160 (device write fault).
  1251.  
  1252. - the INclude file feature is not worked out the best. Especially the
  1253.   line number counting may be mocked by the use of include files.
  1254.  
  1255. - the abbreviation feature is not very sophisticated. It could
  1256.   probably be changed to allow definition of macros within the text
  1257.   file itself.
  1258.  
  1259. - WSD is possibly not prepared for printers that do not support all
  1260.   the printing features defined in the .ESC file (but, are there
  1261.   printers that do not allow to print superscripts and the like?).
  1262.  
  1263. ------------------------------------------------------------------
  1264.  
  1265.